<?php
require_once("../includes/config.php");
include DIR_INCLUDES_FT.'bootstrap.php';

try{
	
	if(isset($_POST['id']) && $_POST['id'] != ''){
		$loja = Doctrine::getTable("Lojas")->find($_POST['id']);
	} else {
		$loja = new Lojas();
	}
	
	$conection->beginTransaction();
	
	$loja->nome= $_POST['nome'];
	$loja->morada= $_POST['morada'];
	$loja->cliente_id= $_POST['cliente'];
	$loja->save();
	
	$produtos_guardados_na_loja = array();
	
	if (isset($_POST['produtos_associados'])) {
		foreach ($_POST['produtos_associados'] as $key=> $produto_id) {
			$produto_na_loja = false;
			if(isset($_POST['id']) && $_POST['id'] != ''){
				$produto_na_loja = Doctrine_Query::create()->from("ProdutosLojas pnj")
									->where("loja_id = ? and produto_id = ?", array($loja->id, $produto_id))->fetchOne();
			}
		
			if (!$produto_na_loja) {
				$produto_na_loja = new ProdutosLojas();
				$produto_na_loja->produto_id = $produto_id;
				$produto_na_loja->loja_id = $loja->id;
				$produto_na_loja->save();
			}
		
			$produtos_guardados_na_loja[] = $produto_na_loja->id;
		}
	}
	
	if(isset($_POST['id']) && $_POST['id'] != ''){
		$produto_na_loja_eliminar = Doctrine_Query::create()->from("ProdutosLojas pl")
										->whereNotIn("pl.id", $produtos_guardados_na_loja)
										->andWhere("pl.loja_id = ?", array($loja->id))
										->execute();
		foreach($produto_na_loja_eliminar as $produto_na_loja){
			$produto_na_loja->delete();
		}
	}
	
	$conection->commit();
	
	header("location: ".DIR_WS."redirect.php?refere=".$_SERVER['HTTP_REFERER']);
} catch (Exception $e){
	$conection->rollback();
	header("location: ".DIR_WS."error_message.php?refere=".$_SERVER['HTTP_REFERER']);
}
?>
